The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Delivery of video content over the Internet has evolved over the years. The first applications of video delivery from content servers to client computers were restricted by technology and bandwidth capacity. Video files had to be dramatically reduced in size to accommodate the low bandwidth of telephone lines. Low resolution video content had to be downloaded to a client computer in whole before the video file could be played to a user. This was due to file system limitations that required an entire file to be downloaded before the file was available in the file system and video player software only having the ability to play back complete files. Users were forced to endure long delays waiting for the video file download to complete.
Proprietary file formats and video player software were created to allow the user to view the video content as the content was being downloaded. The file was either saved or discarded after the download was complete and the user viewed the video content. This approach was highly susceptible to download delays due to bandwidth limitations, server loads, or network delays. The playback of the video content had to be periodically stopped because the video player software starved from the lack of video content to playback.
A more sophisticated method was developed that streamed the video content to the video player software. The delivery systems typically had a single bit rate video file for each video content title. The single bit rate video files were served to all users regardless of their bandwidth availability. Users with higher than normal bandwidth were penalized by being forced to view video content that was a lower quality than the bandwidth justified.
A certain amount of the video content was buffered before the user was able to playback the video content. The buffer was large enough to hold an amount of video content to mask over minor delays in video content delivery caused by bandwidth limitations, server loads, or network delays. Long delivery delays, typically a few seconds or longer, were caused by erratic last mile bandwidths. The delivery delays would starve the video player software and cause the video player software to stop the playback of the video content until delivery resumed and the buffer was sufficiently filled.